home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / asm / sigcontext.h < prev    next >
C/C++ Source or Header  |  2005-10-13  |  2KB  |  86 lines

  1. #ifndef _ASMi386_SIGCONTEXT_H
  2. #define _ASMi386_SIGCONTEXT_H
  3.  
  4. #include <linux/compiler.h>
  5.  
  6. /*
  7.  * As documented in the iBCS2 standard..
  8.  *
  9.  * The first part of "struct _fpstate" is just the normal i387
  10.  * hardware setup, the extra "status" word is used to save the
  11.  * coprocessor status word before entering the handler.
  12.  *
  13.  * Pentium III FXSR, SSE support
  14.  *    Gareth Hughes <gareth@valinux.com>, May 2000
  15.  *
  16.  * The FPU state data structure has had to grow to accommodate the
  17.  * extended FPU state required by the Streaming SIMD Extensions.
  18.  * There is no documented standard to accomplish this at the moment.
  19.  */
  20. struct _fpreg {
  21.     unsigned short significand[4];
  22.     unsigned short exponent;
  23. };
  24.  
  25. struct _fpxreg {
  26.     unsigned short significand[4];
  27.     unsigned short exponent;
  28.     unsigned short padding[3];
  29. };
  30.  
  31. struct _xmmreg {
  32.     unsigned long element[4];
  33. };
  34.  
  35. struct _fpstate {
  36.     /* Regular FPU environment */
  37.     unsigned long     cw;
  38.     unsigned long    sw;
  39.     unsigned long    tag;
  40.     unsigned long    ipoff;
  41.     unsigned long    cssel;
  42.     unsigned long    dataoff;
  43.     unsigned long    datasel;
  44.     struct _fpreg    _st[8];
  45.     unsigned short    status;
  46.     unsigned short    magic;        /* 0xffff = regular FPU data only */
  47.  
  48.     /* FXSR FPU environment */
  49.     unsigned long    _fxsr_env[6];    /* FXSR FPU env is ignored */
  50.     unsigned long    mxcsr;
  51.     unsigned long    reserved;
  52.     struct _fpxreg    _fxsr_st[8];    /* FXSR FPU reg data is ignored */
  53.     struct _xmmreg    _xmm[8];
  54.     unsigned long    padding[56];
  55. };
  56.  
  57. #define X86_FXSR_MAGIC        0x0000
  58.  
  59. struct sigcontext {
  60.     unsigned short gs, __gsh;
  61.     unsigned short fs, __fsh;
  62.     unsigned short es, __esh;
  63.     unsigned short ds, __dsh;
  64.     unsigned long edi;
  65.     unsigned long esi;
  66.     unsigned long ebp;
  67.     unsigned long esp;
  68.     unsigned long ebx;
  69.     unsigned long edx;
  70.     unsigned long ecx;
  71.     unsigned long eax;
  72.     unsigned long trapno;
  73.     unsigned long err;
  74.     unsigned long eip;
  75.     unsigned short cs, __csh;
  76.     unsigned long eflags;
  77.     unsigned long esp_at_signal;
  78.     unsigned short ss, __ssh;
  79.     struct _fpstate __user * fpstate;
  80.     unsigned long oldmask;
  81.     unsigned long cr2;
  82. };
  83.  
  84.  
  85. #endif
  86.